A Learning Apprentice for Software Parts Composition

نویسندگان

  • Bradley P. Allen
  • Peter L. Holtzman
چکیده

We provide an overview of the knowledge acquisition component of the Bauhaus [i], a prototype CASE workstation for the development of domain-specific automatic programming systems (D-SAPS). D-SAPS use domain knowledge in the refinement of a description of a application program into a compilable implementation [2]. Our approach to the construction of D-SAPS is to automate the process of refining a description of a program, expressed in an object-oriented domain language, into a configuration of software parts that implement the behavior of the domain objects. We view this process of software parts composition as a problem-solving task. By structuring a problem-solving task so that the types of knowledge required are made explicit, the acquisition of knowledge useful in performing the task can be made simpler, and the resulting knowledge base becomes easier to maintain [5]. The Bauhaus incorporates a problem-solving architecture based on the RIME [7] and SOAR [3] systems that provides such a structure. In this architecture, the task of refining an initial program description is represented as a goal. A goal determines a problem space and an initial state in that space. A problem space is a set of operators that are useful in the satisfaction of a given goal. An operator transforms a state in the problem space into a new state, or creates a subgoal, or recognizes when a given goal is satisfied. The goal of refining the initial program description is satisfied when the system has composed a set of software parts to form an implementation of the program. Operators are applied by the system by iterating through three stages: i. Propose the set of operators that can be applied to the current state; 2. Choose an operator from the set to apply to the current State; and 3. A_p_ the operator, generating the next current state. User intervention in the choice of an operator is requested when the system reaches an impasse: when no operator applies, then the system is unable to express a preference for an operator, or when the system's preferences are inconsistent. The types of user intervention that can occur correspond to the types of knowledge needed by the system to avoid similar impasses in the future. The system generalizes from observed instances of user intervention to create new operators and preferences. In this manner, the programming knowledge of the system is automatically 423 PRECEDING PAGE BLANK NO]" FLLIV,&I) increased through its use as a software development tool by experienced application developers. This form of knowledge acquisition through the observation of user intervention in the design process allows us to characterize the Bauhaus as a learninq system[4], similar to the VEXED VLSI design system [6]. Implementation of the Bauhaus is currently underway using ART running on a Symbolics Lisp machine under the Genera 7.1 environment, integrated with the Symbolics Ada programming environment.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Machine Learning for Software Reuse

Recent work on learning apprentice systems suggests new approaches for using interactive programming environments to promote software reuse. Methodologies for software specification and validation yield natural domains of application for explanation-based learning techniques. This paper develops a relation between data abstractions in software and explanationbased generalization problems and sh...

متن کامل

IBHYS: a new approach to learn users habits

Learning interface agents search regularities in the user behavior and use them to predict user’s actions. We propose a new inductive concept learning approach, called IBHYS, to learn such regularities. This approach limits the hypothesis search to a small portion of the hypothesis space by letting each training example build a local approximation of the global target function. It allows to sim...

متن کامل

A Learning Apprentice for Decision Support Systems

In this paper we present a general Learning Apprentice linked to decision support systems for generating diagnoses. The Learning Apprentice acquires diagnostic knowledge by following the case studies and exemplars presented to the decision support system. It employs three machine learning techniques to learn: Exemplar Based Learning is used to acquire new diagnosis candidates, Explanation Based...

متن کامل

Software Agents: Completing Patterns and Constructing User Interfaces

To support the goal of allowing users to record and retrieve information, this paper describes an interactive note-taking system for pen-based computers with two distinctive features. First, it actively predicts what the user is going to write. Second, it automatically constructs a custom, button-box user interface on request. The system is an example of a learning-apprentice software-agent. A ...

متن کامل

A Learning Apprentice For Browsing

This paper describes the task of browsing and an agent we have dev eloped to improve the speed and success rate of browsing. The agent is a learning apprentice: it monitors the user’s normal browsing actions and learns a measure of "relevance" to the user interests. It searches the library being browsed, uses the learned measure to evaluate items and presents to the user those that are most rel...

متن کامل

rsonal Learning Apprentice

Personalized knowledge-based systems have not yet become widespread, despite their potential for valuable assistance in many daily tasks. This is due, in part, to the high cost of developing and maintaining customized knowledge bases. The construction of personal assistants as learning apprentices -interactive assistants that learn continually from their users -is one approach which could drama...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003